//
// Created by yunnan xu on 2020/12/15.
//

#ifndef ANDROIDGRAPHICSDEMOS_BLINNPHONGLIGHTPASS_H
#define ANDROIDGRAPHICSDEMOS_BLINNPHONGLIGHTPASS_H

#include "Pass.h"

template<GraphicsAPI API> class BlinnPhongLightPass;

template<> class BlinnPhongLightPass<GraphicsAPI::GLESv3> : public GLESPass
{
public:
    BlinnPhongLightPass(bool with_skinned_mesh = false);
    virtual ~BlinnPhongLightPass() = default;
    virtual void Draw();

protected:
    virtual void InitShaderUniformLocation();

    bool with_skinned_mesh;

    GLint CameraVPMatrix_location;
    GLint ModelMatrix_location;
    GLint LightProjMatrix_location;
    GLint shadowMap_location;
    GLint lightPos_location;
    GLint cameraPos_location;

    GLint inBoneIndex_location;
    GLint inBoneWeights_location;
    GLint BoneTransformList_location;
};


#endif //ANDROIDGRAPHICSDEMOS_BLINNPHONGLIGHTPASS_H
